其他
【10-3】做数据分析,要不要掌握Linux系列:shell编程之分支与循环!
1、分支:if与case
Ⅰ if语法的3种形式如下:
① 假如今天天气好,我就打羽毛球,跑步,洗澡。
打羽毛球
跑步
洗澡
② 假如今天天气好,我就打羽毛球,跑步,洗澡;否则,我就呆在家学习。
呆在家里学习
③ 成绩<60,不及格;60<=成绩<85,及格;成绩>=85,优秀。
及格
④ 下面说一个和python中input函数类似的函数,read -p :等待控制台输入。
请输入您的分数:90
优秀
[hadoop@image shell]$ . read.sh
请输入您的分数:70
及格
[hadoop@image shell]$ . read.sh
请输入您的分数:40
不及格
Ⅱ case语法如下:
start your play
[hadoop@image shell]$ . case.sh stop
stop your play
[hadoop@image shell]$ . case.sh stop
stop your play
2、循环:where、for与until
Ⅰ where循环语法如下:
// 当满足condition这个条件,才会执行下面的代码;
while condition
do
command
done
例: 利用where循环实现1+2+3+...+100
① 直接把100定死了;
1到100的和为:5050
② 采用传参的方式;
1到10的和为:55
[hadoop@image shell]$ . while.sh 50
1到50的和为:1275
[hadoop@image shell]$ . while.sh 100
1到100的和为:5050
③ 控制台输入的方式;
请输入你想输入的数:10
1到10的和为:55
[hadoop@image shell]$ . while.sh
请输入你想输入的数:50
1到50的和为:1275
[hadoop@image shell]$ . while.sh
请输入你想输入的数:100
1到100的和为:5050
Ⅱ for循环语法如下:
【for var in list】有以下3种写法:
for var in {1..100} # 这个也表示从1-100;
for ((i=0;i<=100;i++)) # 注意这种写法,和java中for循环写法类似;
利用for循环,制作九九乘法表:分三步进行讲解。
① 先看看echo中的参数“-e”的作用是什么?
我\n爱\n你
[hadoop@image shell]$ echo -e "我\n爱\n你"
我
爱
你
// 从上述结果中可以看出:"-e"可以让程序处理"\t \n"等特殊字符。
② 再看看echo中的参数“-n”的作用是什么?
“-n”
的时候:“-n”
的时候③ 制作九九乘法表
[root@bigdata111 ~]# cat cacul.sh
#!/bin/bash
for((i=1;i<=9;i++))
do
for ((j=1;j<=i;j++))
do
echo -ne "$i*$j=$[i*j]\t"
done
echo
done
Ⅲ until循环语法如下:
// 不管怎么样,先执行循环体一次,直到某个条件满足condition,退出循环。
until condition
do
command
done
0 1 2 3 4 5 6 7 8 9 10